﻿Public Class Service1

  Private _T As MainThread1

    Protected Overrides Sub OnStart(ByVal args() As String)
        ' Code zum Starten des Dienstes hier einfügen. Diese Methode sollte Vorgänge
    ' ausführen, damit der Dienst gestartet werden kann.
    _T = New MainThread1
    _T.StartThread()
    End Sub

    Protected Overrides Sub OnStop()
    ' Hier Code zum Ausführen erforderlicher Löschvorgänge zum Beenden des Dienstes einfügen.
    _T.StopThread()
  End Sub


  Public Class MainThread1
    Private t As New Threading.Thread(AddressOf Main)
    Private pfad As String = String.Empty
    Private running As Boolean = False
    Private p As Process

    Sub New()

      pfad = IO.Path.Combine(IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly().Location), "SNCS.exe")

      If Not System.IO.File.Exists(pfad) Then pfad = IO.Path.Combine(My.Settings.Pfad, "SNCS.exe")
      If Not IO.File.Exists(pfad) Then End
    End Sub

    Public Sub StartThread()
      running = True
      t = New Threading.Thread(AddressOf Main)
      t.Start()
    End Sub

    Public Sub StopThread()
      running = False
      p.Kill()
      p.WaitForExit()
    End Sub

    Private Sub Main()
      Do While running
        p = New Process()
        p.StartInfo.FileName = pfad
        p.StartInfo.CreateNoWindow = True
        p.StartInfo.UseShellExecute = False
        p.Start()
        p.WaitForExit()
      Loop
    End Sub

  End Class

End Class
